package Test;

import java.util.Date;

import junit.framework.TestCase;

import CtrLayer.KundeCtr;
import DataLayer.Model.Kunde;

public class testKundeCtr extends TestCase
{
	private KundeCtr kCtr;
	private Kunde kunde;

	public void setUp() throws Exception
	{
		kCtr = new KundeCtr();
		kunde = new Kunde(
				"Test kunde", "Efternavn", "Adresse", "9000", "Aalborg", "38", "88776644",
				"test-kunde@alienbug.dk", false, new Date().getTime(), false);
	}

	public void tearDown() throws Exception
	{
	}

	public void testKundeController()
	{
		try
		{
			createKunde();
			Kunde dbKund = getKundeViaEmail(kunde.getEmail());
			assertEquals(kunde.getFornavn(), dbKund.getFornavn());
			assertEquals(kunde.getEfternavn(), dbKund.getEfternavn());
			assertEquals(kunde.getAdresse(), dbKund.getAdresse());
			int rc = deleteKunde(dbKund);
			assertEquals(1, rc);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}

	public void createKunde() throws Exception
	{
		kCtr.createKunde(
				kunde.getFornavn(), kunde.getEfternavn(), kunde.getAdresse(), kunde.getPostnr(),
				kunde.getBy(), kunde.getLand(), kunde.getTlf(), kunde.getEmail(),
				kunde.isKlubmedlem(), kunde.getUdloebsdato(), kunde.isUnderrettet());
	}

	public Kunde getKundeViaEmail(String email)
	{
		Kunde k = kCtr.getKundeViaEmail(email);
		System.out.println("Kunden med fornavn: " + k.getFornavn() + " blev fundet.");
		return k;
	}

	public int deleteKunde(Kunde k)
	{
		int rc = 0;
		try
		{
			rc = kCtr.deleteKunde(k);
		}
		catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("Kunden " + k.getFornavn() + " blev slettet");
		return rc;
	}
}
